//懒汉模式(多线程模式进阶版)
public class Singleton {
    // 私有构造器
    private Singleton() {
    }
    // 私有静态常量，保存实例
    //加上volatile 确保其他线程访问
    private volatile static Singleton instance = null;

    // 公有静态方法，返回实例
    //加个锁就是保证线程安全了
    public  static Singleton getInstance() {
        //先判断如果没有创建实例时 才创建实例, 并非是启动就是创建实例
        if(instance==null) {
            //当有线程获取锁时,其他线程需要等待锁的释放,其他线程成功获取锁后,
            // 还需要在进行判断实例是否已创建好
            synchronized(Singleton.class){
                if(instance==null){
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}
